home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / languages / obrn-a_1.5_lib.lha / oberon-a / source2.lha / source / amiga / Timer.mod < prev    next >
Encoding:
Text File  |  1995-01-26  |  2.2 KB  |  105 lines

  1. (**************************************************************************
  2.  
  3.      $RCSfile: Timer.mod $
  4.   Description: Interface to timer.device
  5.  
  6.    Created by: fjc (Frank Copeland)
  7.     $Revision: 3.7 $
  8.       $Author: fjc $
  9.         $Date: 1995/01/26 02:39:55 $
  10.  
  11.   Includes Release 40.15
  12.  
  13.   (C) Copyright 1985-1993 Commodore-Amiga, Inc.
  14.       All Rights Reserved
  15.  
  16.   Oberon-A interface Copyright © 1994-1995, Frank Copeland.
  17.   This file is part of the Oberon-A Interface.
  18.   See Oberon-A.doc for conditions of use and distribution.
  19.  
  20. ***************************************************************************)
  21.  
  22. <* STANDARD- *> <* INITIALISE- *> <* MAIN- *>
  23. <*$ CaseChk-  IndexChk- LongVars+ NilChk-  *>
  24. <*$ RangeChk- StackChk- TypeChk-  OvflChk- *>
  25.  
  26. MODULE [2] Timer;
  27.  
  28. IMPORT e := Exec;
  29.  
  30. (*
  31. **      $VER: timer.h 36.16 (25.1.91)
  32. **
  33. **      Timer device name and useful definitions.
  34. *)
  35.  
  36. CONST
  37.  
  38. (* unit defintions *)
  39.   microHZ   * = 0;
  40.   vBlank    * = 1;
  41.   eClock    * = 2;
  42.   waitUntil * = 3;
  43.   waitEClock* = 4;
  44.  
  45.   timerName * = "timer.device";
  46.  
  47. TYPE
  48.  
  49.   TimeValPtr* = POINTER TO TimeVal;
  50.   TimeVal* = RECORD
  51.     secs*  : e.ULONG;
  52.     micro* : e.ULONG;
  53.   END; (* TimeVal *)
  54.  
  55.   EClockValPtr* = POINTER TO EClockVal;
  56.   EClockVal* = RECORD
  57.     hi* : e.ULONG;
  58.     lo* : e.ULONG;
  59.   END; (* EClockVal *)
  60.  
  61.   TimeRequestPtr* = POINTER TO TimeRequest;
  62.   TimeRequest* = RECORD (e.IORequestBase)
  63.     node* : e.IORequest;
  64.     time* : TimeVal;
  65.   END; (* TimeRequest *)
  66.  
  67. CONST
  68.  
  69. (* ioCommand to use for adding a timer *)
  70.   addRequest  * = e.nonstd;
  71.   getSysTime  * = e.nonstd+1;
  72.   setSysTime  * = e.nonstd+2;
  73.  
  74.  
  75. (*-- Device base variable----------------------------------------------*)
  76.  
  77. VAR
  78.  
  79.   base * : e.DevicePtr;
  80.  
  81. (*-- Device functions -------------------------------------------------*)
  82.  
  83. (*
  84. **      $VER: timer_protos.h 1.6 (25.1.91)
  85. *)
  86.  
  87. PROCEDURE AddTime* [base,-42]
  88.   ( VAR dest [8] : TimeVal;
  89.     VAR src  [9] : TimeVal );
  90. PROCEDURE SubTime* [base,-48]
  91.   ( VAR dest [8] : TimeVal;
  92.     VAR src  [9] : TimeVal );
  93. PROCEDURE CmpTime* [base,-54]
  94.   ( VAR dest [8] : TimeVal;
  95.     VAR src  [9] : TimeVal )
  96.   : INTEGER;
  97. PROCEDURE ReadEClock* [base,-60]
  98.   ( VAR dest [8] : EClockVal )
  99.   : e.ULONG;
  100. PROCEDURE GetSysTime* [base,-66]
  101.   ( VAR dest [8] : TimeVal );
  102.  
  103. BEGIN base := NIL
  104. END Timer.
  105.